package com.chh.exam.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
 * @author: chh
 * @Desc:
 * @create: 2025-01-06 02:33
 **/
@Configuration
public class CorsConfig {
    @Bean
    public CorsFilter corsFilter(){
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedHeader("*");//表示允许所有头部信息。
        config.addAllowedMethod("*");//表示允许所有 HTTP 方法
        config.addAllowedOriginPattern("*");//表示允许所有来源的请求。写具体地址就是只能该地址访问
        config.setAllowCredentials(true);//表示允许携带凭证（如 cookies 和授权头,token）。
//用于基于 URL 路径注册 CORS 配置。
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

        source.registerCorsConfiguration("/**",config);//将 CORS 配置应用到所有路径。

        return  new CorsFilter(source);//创建一个 CORS 过滤器，该过滤器将应用于所有请求。
    }
}